#pragma once

#include "Solver.h"
#include <stack>
#include <ctime>
class DFSSolver : public Solver
{
private:
	std::stack<Node *> stack;
	std::vector<Node *> visited;
public:
	DFSSolver(Node *root=NULL);
	void solve(std::string order, std::string id_heuristic="");
	void firstPush();
	void getNode();
	bool checkVisited();
	void createChildren(std::string *order);
	void pushChildren();
	~DFSSolver();
};

